.TH std::atomic_store,std::atomic_store_explicit 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::atomic_store,std::atomic_store_explicit \- std::atomic_store,std::atomic_store_explicit

.SH Synopsis
   Defined in header <atomic>
   template< class T >

   void atomic_store( std::atomic<T>* obj,                            \fB(1)\fP \fI(since C++11)\fP

                      typename std::atomic<T>::value_type desired )
   noexcept;
   template< class T >

   void atomic_store( volatile std::atomic<T>* obj,                   \fB(2)\fP \fI(since C++11)\fP

                      typename std::atomic<T>::value_type desired )
   noexcept;
   template< class T >

   void atomic_store_explicit( std::atomic<T>* obj,
                               typename std::atomic<T>::value_type    \fB(3)\fP \fI(since C++11)\fP
   desired,

                               std::memory_order order) noexcept;
   template< class T >

   void atomic_store_explicit( volatile std::atomic<T>* obj,
                               typename std::atomic<T>::value_type    \fB(4)\fP \fI(since C++11)\fP
   desired,

                               std::memory_order order) noexcept;

   1,2) Atomically replaces the value pointed to by obj with the value of desired as if
   by obj->store(desired).
   3,4) Atomically replaces the value pointed to by obj with the value of desired as if
   by obj->store(desired, order).
   If order is one of std::memory_order_consume, std::memory_order_acquire and
   std::memory_order_acq_rel, the behavior is undefined.

.SH Parameters

   obj     - pointer to the atomic object to modify
   desired - the value to store in the atomic object
   order   - the memory synchronization ordering

.SH Return value

   \fI(none)\fP

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

     DR    Applied to         Behavior as published         Correct behavior
   P0558R1 C++11      exact type match was required because T is only deduced
                      T was deduced from multiple arguments from obj

.SH See also

                        atomically replaces the value of the atomic object with a
   store                non-atomic argument
                        \fI(public member function of std::atomic<T>)\fP
   atomic_load
   atomic_load_explicit atomically obtains the value stored in an atomic object
   \fI(C++11)\fP              \fI(function template)\fP
   \fI(C++11)\fP
   memory_order         defines memory ordering constraints for the given atomic
   \fI(C++11)\fP              operation
                        \fI(enum)\fP

   std::atomic_store(std::shared_ptr)          specializes atomic operations for
   std::atomic_store_explicit(std::shared_ptr) std::shared_ptr
   (deprecated in C++20)                       \fI(function template)\fP
   (removed in C++26)
   C documentation for
   atomic_store,
   atomic_store_explicit
